3 - Introduction to Software Engineering [ID:52442]
50 von 781 angezeigt

I will switch back to English. Thank you for attending our class. Thanks for coming here

in person, but we also have of course the recordings in English this semester and of

course in German from last semester. And today we want to continue to talk about different

agile development methods. So we've seen so far, just to recap a bit, why are you in this class?

Yeah, because software engineering is something if it's not done properly, projects fail. If you

have smaller software projects, not having to rely on not being educated well in software

engineering is probably not that bad because it mainly relates to programming skills. But if you

want to develop software in a larger team, in larger projects, you have to have software engineering

skills. And we go essentially all the way from development processes, how to organize that,

then towards really looking into requirements, analyze what is really needed for a software

project and how to measure what a meaningful requirement is. And we will also look into

different architectural approaches, what a good software architecture can look like,

and we will talk a little bit about design patterns, recurring themes in software development

that appear again and again. And towards the end we will look a little bit more into the

management side, how to stay within the allocated budget, how to stay within the allocated resources

that we don't get too expensive. Sometimes you have to make some decisions to simplify goals or

to be able to implement things in a timely and accurate manner. So there's also project management,

communication is also a very, very important requirement in software engineering. Do you have a question?

Ah, okay. Exactly. So these, and I must admit that some people don't teach software engineering

that much and that sometimes it's not an important topic because people only focus on the algorithms

and only on the math. But in the end you will have to put it to use and there are also a lot

of soft factors that are very important and we will highlight them throughout this lecture. So

it's not just that you know the algorithms well, that you know the programming language as well,

it's also that you will get your communications, your team set up properly and you've already

seen that. We started talking with the software processes and started off with this waterfall

model where you have the grand idea in the beginning and then you think about a very detailed

plan and then everything according goes according to plan. If everything goes according to plan,

the waterfall model will be fine. But most of the time software projects don't go according to plan

and you have to reiterate because it's not like you're manufacturing a table or a chair or something

like that. You know for a chair you can do that, okay I want it to have four legs and then I have

to have a backrest and then you can plan it and build it piece by piece and then in the end you

put it together. But the thing with software is different because software, not just that we have

other means of manufacturing software, we can update. You can deliver the software and then

send out updates and so on which gives a huge flexibility. Imagine that you could be able to

exchange the cushions of a chair when it's already sold and you make a better cushioning or backrest

or something like that. That would be immensely expensive because you would have to send somebody

and then really change that particular chair. The software updates, they run overnight. It's very

cheap to change the software even if it's already at the site of your customer. Everybody of you

knows that your Windows PCs, every now and then they shut down overnight and come up with a new

version and then you have to, you see that some of the processes were killed because it ran an

update in the background. So it's very very cheap to do that and therefore we've seen and discussed

agile methods, methods that allow you to adopt your plan over several iterations. We started

with this rational unified process which is more focusing still on planning. Then we've looked into

Kanban which was essentially very much focused on the flow, on the process that you're and it's also

used in manufacturing and Kanban focuses a lot about seeing where the bottlenecks are and then

avoiding the bottlenecks. You know that everybody has the right piece of software and so on at the

time when they need it and they don't run out of things to do because that is also very unproductive.

If people have to remain idle, it's the same thing if you're writing software that is

multi-threaded. If you just use a single core in your PC then of course you're not using the full

efficiency. If you start using way more than you actually physically have you end up with also

Zugänglich über

Offener Zugang

Dauer

01:29:57 Min

Aufnahmedatum

2024-05-02

Hochgeladen am

2024-05-03 17:39:03

Sprache

en-US

Einbetten
Wordpress FAU Plugin
iFrame
Teilen